size []     = 0
size (x:xs) = 1+(size xs)

{void} bridge n {}    = n

{int} callSize xs {}  = {bridge (size xs)}()::c_value